package com.edevp.common.core.util.jwt;

import com.edevp.common.core.constant.CommonConstants;
import io.jsonwebtoken.SignatureAlgorithm;
import io.jsonwebtoken.Claims;
import io.jsonwebtoken.Jwts;
import sun.security.util.SecurityConstants;

import java.util.Map;

/**
 * @author lean
 * @create 2022-07-08 5:17 PM
 **/
public class JwtUtil {

	/**
	 * 从数据声明生成令牌
	 *
	 * @param claims 数据声明
	 * @return 令牌
	 */
	public static String create(Map<String, Object> claims)
	{
		String token = Jwts.builder().setClaims(claims).signWith(SignatureAlgorithm.HS512, CommonConstants.JWT_SECRET).compact();
		return token;
	}

	/**
	 * 从令牌中获取数据声明
	 *
	 * @param token 令牌
	 * @return 数据声明
	 */
	public static Claims parse(String token)
	{
		return Jwts.parser().setSigningKey(CommonConstants.JWT_SECRET).parseClaimsJws(token).getBody();
	}

}
